#ifndef _EKK_QUEUE_H_
#define _EKK_QUEUE_H_

#ifdef __cplusplus
extern "C"{
#endif

typedef void* QUEUE_HANDLE;

int ekk_queue_get_max_size(QUEUE_HANDLE hq);
int ekk_queue_set_max_size(QUEUE_HANDLE hq,int sz);
QUEUE_HANDLE ekk_queue_create();
void ekk_queue_alloc(QUEUE_HANDLE hq);
void ekk_queue_destroy(QUEUE_HANDLE hq);
int ekk_queue_get_len(QUEUE_HANDLE hq);
void* ekk_queue_pop(QUEUE_HANDLE hq);
	//add by zzw
	void* ekk_queue_pre_pop(QUEUE_HANDLE hq) ;	
void ekk_queue_push(QUEUE_HANDLE hq,void* p);
void ekk_queue_clean(QUEUE_HANDLE hq);
int ekk_queue_is_full(QUEUE_HANDLE hq);
int ekk_queue_is_empty(QUEUE_HANDLE hq);

#ifdef __cplusplus
}
#endif

#endif //_EKK_QUEUE_H_